#include "tools.h"

/////////////////////////////////////////////////////HidDfu升级/////////////////////////////////////////////////////
//请在灯闪烁的时候按一下按键
void CheckUpdataAction(void)
{
  FLASH_OBProgramInitTypeDef obData;
  if(key_check() == KEY_DOWN)
  {
    HAL_FLASH_Unlock();
    HAL_FLASH_OB_Unlock();
    HAL_FLASHEx_OBGetConfig(&obData);
    HAL_FLASHEx_OBErase();
    obData.DATAAddress = OB_DATA_ADDRESS_DATA0;
    obData.DATAData = 0xFF;
    obData.OptionType = OPTIONBYTE_DATA;
    HAL_FLASHEx_OBProgram(&obData);
    HAL_FLASH_OB_Lock();
    HAL_FLASH_Lock();
    while(1)
    {
      led_invert();
      HAL_Delay(50);
    }
  }
}


/////////////////////////////////////////////////////简单按键/////////////////////////////////////////////////////
uint8_t key_check( void )
{
    if( KEY1_Pin != ( KEY1_GPIO_Port->IDR & KEY1_Pin ))                             //检测按键输入状态
    {
        HAL_Delay(50);                                                              //消抖
        if( KEY1_Pin != ( KEY1_GPIO_Port->IDR & KEY1_Pin ))
        {
            return KEY_DOWN;                                                        //按键按下，返回按键状态
        }
    }
    return KEY_UP;
}

/////////////////////////////////////////////////////工具函数/////////////////////////////////////////////////////

